New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Apache Camel #410
Comments
I have to look internally at our Camel stuff but could this be as «simple» as Creating some producers? How do we handle labling? We have to parse the to string somehow? |
As I see it, there might be 2 parts to this (unless I am completely missing the boat):
I think we might have to do a little fancy naming footwork with the JMX metrics to make it easier to graph in something like Grafana. Thoughts? Thanks, |
Thoughts:
|
@ohr Biggest question you raise is also a question of mine: where should this live? The best possible scenario (for us) is that instrumentation lives in Camel itself (similar to what was done for rabbitmq-java and hikaricp), but I know that isn't always possible. The binders we've included in the core module so far are chosen deliberately for their long-established API stability. We could of course create a new module for each new integration, |
|
Could we host it in the micrometer org but name it micrometer-camel? |
@bjartek Jon did mention that option when he referred to the Prometheus The only problem I see with leaving them in core is the need to be careful that the camel dep remains Is anyone here a camel contributor that could try putting the micrometer support directly in Camel? |
I contributed a couple of things to Camel already so I could prepare a pull request in Camel for micrometer support (following the pattern from camel-metrics. @davsclaus: any objections?) Note, however, that Camel has already a LOT of components that integrate 3rd party libs, and a considerable percentage of them have a tendency to become outdated over time (i.e. not catching up with new versions and features of the 3rd party libs being covered). |
@ohr Being a Pivotal sponsored project, Micrometer is bound to 3 year support for major releases (no breaking public API changes inside a major release) and 1 year for minor. Realistically, it's probably longer for Micrometer since Spring Boot 2 depends on it, and its life expectancy is probably greater than 3 years. |
Hi! we are doing something similar with https://docs.confluent.io/current/kafka/monitoring.html#global-request-metrics While it would be nice to have this integrated in What about extracting the |
@ohr yeah that would be lovely. There is a JIRA ticket already: https://issues.apache.org/jira/browse/CAMEL-11600 I disagree a bit on your about components gets outdated, we upgrade to latest versions as much as possible, and include all PRs that people contribute, and we overhaul and redo components on major new versions like elasticsearch. The camel-spark component however indeed needs an upgrade to v2 or to do a camel-spark2 component. Use the JIRA voting to help prioritize and also contribute as you have done. |
@ohr any progress on this? I'm looking to upgrade to spring boot 2, and currently have dropwizard metrics from all camel routes, which I don't want to lose! |
@jonmcewen We want a generalized solution for Apache Camel metrics still, but there is no reason you have to lose Dropwizard metrics upgrading to Boot 2. Suppose you are shipping your dropwizard metrics to graphite (similar story for other dropwizardy-backends). You can either:
|
@jkschneider great. Is there any further documentation or example code for this? |
Slowly progressing, been busy recently.... Work will be tracked in https://issues.apache.org/jira/browse/CAMEL-11600. Some dropwizard concepts used in Camel cannot be mapped 1:1, such as setting Gauge values via a producer. |
@ohr if you could show me a Dropwizard line in camel that uses this, I'll show you how to do it with a Micrometer
I could see us doing this at the same time as we define a generalized mechanism to pre-aggregate certain dimensions. This work was originally required for CloudWatch, but we've since found that it is highly applicable to JMX as well.
So far we've just been using String concat, but I wouldn't object to an internal utility that makes this easier, provided that it doesn't involve a Jackson-like library. Not that I dislike Jackson, but don't want Micrometer to poison the classpath with opinions on libraries like that. |
A Camel Dropwizard gauge maintains its "private" value that is actively set when an exchange passes the producer:
Micrometer observes a weak reference, so I guess that simply having the Camel route to modify the target of that reference is preferrable. With your remarks, I skip JMX stuff for the time being. |
CAMEL-11600 was resolved. So this could be closed as well. |
As @ohr stated above, this looks resolved via the Micrometer component which lives in the Apache Camel repo. |
See https://github.com/laurikimmel/camel-metrics
See https://brunonetid.github.io/2017/11/27/camel-prometheus-openshift.html
cc / @bjartek
The text was updated successfully, but these errors were encountered: